Stack Fragment Sampling in User Space
نویسنده
چکیده
Typical sampling profilers periodically interrupt the observed application and record a stack trace of its threads, i.e., the executing methods and callers. The entirety of the collected samples gives a statistical picture of where the application spends its time. However, interrupting application threads and delaying their execution while building a stack trace can cause a significant performance impact, especially in common Java VMs, which require all application threads to be paused together. Our research group has devised a fast alternative approach for sampling in a Java VM [1]. This approach uses the perf subsystem of the Linux kernel [2] to periodically trigger interrupts with a hardware timer. The interrupt handler of perf only copies a memory fragment from the stack of the currently executing thread to a buffer and then resumes execution. The stack fragments are asynchronously read from the buffer and decoded to Java stack traces. This approach is very lightweight because the interrupts and copy operations are inexpensive and decoding can be done with minimal impact on the application. However, the disadvantage of our implementation is that it requires specific operating system capabilities. The task of this thesis is to adapt our approach to use a more portable mechanism, such as POSIX signals [3]. This entails periodically interrupting threads in software, copying a stack fragment to a buffer when interrupted, and ensuring safe concurrent access to the buffer(s). The performance of the implementation should be compared to that of our existing approach.
منابع مشابه
A stack-based chaotic algorithm for encryption of colored images
In this paper, a new method is presented for encryption of colored images. This method is based on using stack data structure and chaos which make the image encryption algorithm more efficient and robust. In the proposed algorithm, a series of data whose range is between 0 and 3 is generated using chaotic logistic system. Then, the original image is divided into four subimages, and these four i...
متن کاملUser Space TCP - Getting LKL Ready for the Prime Time
Running the networking stack in the user space is not new. The conventional wisdom is that the network stack must bypass the kernel in order to meet the performance requirements of a class of applications that demand super-low latency. This paper describes an experiment we’ve undertaken to provide a productionstrength user space TCP stack for a different use case inside Googles internal product...
متن کاملSCADS - Separated Control- and Data-Stacks
Despite the fact that protection mechanisms like StackGuard, ASLR and NX are widespread, the development on new defense strategies against stack-based buffer overflows has not yet come to an end. In this paper, we present a compiler-level protection called SCADS: Separated Controland Data-Stacks. In our approach, we protect return addresses and saved frame pointers on a separate stack, called t...
متن کاملDemultiplexing on the ATM adapter: Experiments with Internet protocols in user space
We took a public domain implementation of the TCP/IP protocol stack and ported into user space. The user space implementation was then optimized by a one-to-one mapping of transport connections onto ATM connections and a packet filter. We describe the user space implementation and compare its latency and throughput performance with the existing kernel implementation. Published in: Journal on Hi...
متن کاملExperience and Results from the Implementation of an ATMSocket
This paper describes the implementation of an ATM protocol stack as a protocol family within a 4.3 BSD derived Unix. A novel approach to the implementation of the management and control functions for the ATM protocol stack has been adopted. The data path is implemented within the kernel but all control and management functions are implemented by a user space daemon. An encapsulation of IP on th...
متن کامل